package String;

/**
 * Created by User on 2017/11/23.
 */
public class St {


    public static void main(String[] args) {
        String ss = new StringBuilder("flo").append("at").toString();
        System.out.println(ss.intern() == ss); // false

        String sss = new StringBuilder("计算").append("电脑").toString();
        System.out.println(sss.intern() == sss); // true


        String str2 = "SEUCalvin";//新加的一行代码，其余不变
        String str1 = new String("SEU")+ new String("Calvin");
        System.out.println(str1 == str1);// true
        System.out.println(str1 == "SEUCalvin"); // false
        System.out.println(str1.intern() == "SEUCalvin");// true
        System.out.println(str1.intern() == str2); // true




        // java7 常量池被放入到堆空间中    之前，常量池是放在 Perm 区（属于方法区）中的

        String s = new String("1");
        s.intern();
        String s2 = "1";
        System.out.println(s == s2);

        String s3 = new String("1") + new String("1");
        s3.intern(); // java7 将11移到常量池里    java6将11重新生成一个在常量池里
        String s4 = "11";
        System.out.println(s3 == s4);
    }

}
